package in.data.entity; import android.os.Parcel; import android.os.Parcelable; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.util.ArrayList; import java.util.List; import in.lib.utils.Debug; import in.lib.utils.SerialReaderUtil; import in.lib.utils.SerialWriterUtil; import lombok.Data; @Data public class MentionEntity extends Entity { protected String id; protected String name; @Override public MentionEntity createFrom(JsonElement element) { if (super.createFrom(element) != null) { try { JsonObject mentionObject = element.getAsJsonObject(); this.id = mentionObject.get("id").getAsString(); this.name = mentionObject.get("name").getAsString(); return this; } catch (Exception e) { Debug.out(e); } } return null; } @Override public MentionEntity createFrom(Parcel parcel) { super.createFrom(parcel); return this; } @Override public List<MentionEntity> createListFrom(JsonElement element) { try { JsonArray mentionsArray = element.getAsJsonArray(); ArrayList<MentionEntity> mentions = new ArrayList<MentionEntity>(mentionsArray.size()); for (JsonElement mentionElement : mentionsArray) { MentionEntity mention = new MentionEntity().createFrom(mentionElement); if (mention != null) { mentions.add(mention); } } return mentions; } catch (Exception e) { Debug.out(e); } return null; } @Override public String getVersion() { return "37560027-e204-4657-8427-7a8248823ade"; } @Override public Entity read(SerialReaderUtil util) { if (super.read(util) != null) { try { String version = util.readString(); if (!version.equals(getVersion())) return null; name = util.readString(); id = util.readString(); return this; } catch (Exception e) { Debug.out(e); } } return null; } @Override public void write(SerialWriterUtil util) { super.write(util); try { util.writeString(getVersion()); util.writeString(name); util.writeString(id); } catch (Exception e) { Debug.out(e); } } public static final Parcelable.Creator<MentionEntity> CREATOR = new Creator<MentionEntity>() { @Override public MentionEntity[] newArray(int size) { return new MentionEntity[size]; } @Override public MentionEntity createFromParcel(Parcel source) { return new MentionEntity().createFrom(source); } }; }